using Admin.Application.Common;
using Admin.Application.Dto.User;

namespace Admin.Application.Repositories
{
    /// <summary>
    /// 定义用户认证服务的接口。
    /// 该接口包含注册和登录两个主要的异步方法，用于处理用户的注册和登录请求。
    /// </summary>
    public interface IAuthService
    {
        /// <summary>
        /// 异步注册新用户。
        /// </summary>
        /// <param name="authDto">包含注册信息的数据传输对象（DTO）</param>
        /// <returns>一个包含注册结果的 Task 对象，成功时返回 Result&lt;string&gt; 类型的成功消息，失败时返回错误消息。</returns>
       Task<Result<string>> RegisterAsync(AuthDto authDto);

        /// <summary>
        /// 异步登录用户。
        /// </summary>
        /// <param name="authDto">包含登录信息的数据传输对象（DTO）</param>
        /// <returns>一个包含登录结果的 Task 对象，成功时返回 Result&lt;string&gt; 类型的成功消息，失败时返回错误消息。</returns>
        Task<Result<string>> LoginAsync(AuthDto authDto);
    }
}